fea625115715db2a8491fc6a0aea5e144a175fa8,carbon/src/main/java/carbon/beta/CoordinatorLayout.java,CoordinatorLayout,dispatchDraw,#Canvas#,100
Before Change
views.add(getChildAt(i));
Collections.sort(views, new ElevationComparator());
super.dispatchDraw(canvas);
if (rippleDrawable != null && rippleDrawable.getStyle() == RippleDrawable.Style.Over)
rippleDrawable.draw(canvas);
if (insetColor != 0) {
paint.setColor(insetColor);
paint.setAlpha(255);
if (insetLeft != 0)
canvas.drawRect(0, 0, insetLeft, getHeight(), paint);
if (insetTop != 0)
canvas.drawRect(0, 0, getWidth(), insetTop, paint);
if (insetRight != 0)
canvas.drawRect(getWidth() - insetRight, 0, getWidth(), getHeight(), paint);
if (insetBottom != 0)
canvas.drawRect(0, getHeight() - insetBottom, getWidth(), getHeight(), paint);
}
}
After Change
@Override
protected void dispatchDraw(@NonNull Canvas canvas) {
// draw not called, we have to handle corners here
if (cornerRadius > 0 && !drawCalled && getWidth() > 0 && getHeight() > 0 && Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT_WATCH) {
int saveCount = canvas.saveLayer(0, 0, getWidth(), getHeight(), null, Canvas.ALL_SAVE_FLAG);
internalDispatchDraw(canvas);
paint.setXfermode(pdMode);
canvas.drawPath(cornersMask, paint);
canvas.restoreToCount(saveCount);
paint.setXfermode(null);
} else {
internalDispatchDraw(canvas);
}
drawCalled = false;
}